/**
 * (C)2012 Exlu Corporation. All rights reserved.
 * 注意事項   :
 */
package cn.exlu.wea.field.operate;

/**
 * 字符串操作类
 * @author Mark 
 * @version 1.0.1.1
 * @CreateTime 2012-12-10
 */
public final class LpOperateStringUtil {

    /**
     * 将字符串左补足给定字符，已达到指定长度
     * @param str 输入字段
     * @param padChar 补足字符
     * @param len 返回字符串长度
     * @return 补足后的字符串
     */
    public static String lpadChar(String str,char padChar,int len){
        
        StringBuilder sb=new StringBuilder();
        for(int i=0;i<len-str.length();i++){
            sb.append(padChar);
        }
        sb.append(str);
        return sb.toString();
    }

    /**
     * 将字符串右补足给定字符，已达到指定长度
     * @param str 输入字段
     * @param padChar 补足字符
     * @param len 返回字符串长度
     * @return 补足后的字符串
     */
    public static String rpadChar(String str,char padChar,int len){
        StringBuilder sb=new StringBuilder();
        sb.append(str);
        for(int i=0;i<len-str.length();i++){
            sb.append(padChar);
        }
        return sb.toString();
    }
    
    /**
     * 返回字符串的副本，忽略前导空白和尾部空白（包括全角, 半角）
     * @param str   输入字段
     * @return 此字符串移除了前导和尾部空白的副本，如果没有前导和尾部空白，则返回此字符串。
     */
    public static String trimExtend(String str){
        int st=0;
        int len=str.length();
        char[] cha=str.toCharArray();
        
        while(st<len&&(cha[st]=='\u3000'||cha[st]<='\u0020')){
            st++;
        }
        while(st<len&&(cha[len-1]=='\u3000'||cha[len-1]<='\u0020')){
            len--;
        }
        return st>0?str.substring(st,len):str;
        
    }
}
